home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 36
/
Amiga Format CD36 (1999-01-22)(Future Publishing)(GB)[!][issue 1999-02].iso
/
-seriously_amiga-
/
sound
/
euterpe
/
developer
/
bnkdemo.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-12
|
6KB
|
238 lines
// bnkdemo.h
// $Id$
#include <exec/types.h>
#include <exec/memory.h>
#include <exec/semaphores.h>
#include <intuition/gadgetclass.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/gadtools.h>
#include <proto/asl.h>
#include <clib/macros.h>
#include "/xappmsg.h"
#include "mydebug.h"
enum GadgetID {
UPLOAD_ID,
DOWNLOAD_ID,
LOAD_ID,
SAVE_ID,
SETPART_ID,
SETPRG_ID,
UNIT_ID,
PROGRAM_ID,
PART_ID,
TONE_ID,
TONENAME_ID,
SPARTIAL1_ID,
SPARTIAL2_ID,
ENVMODE_ID,
PARTIALMUTE_ID,
PARTIAL_ID,
PARAMETER_ID,
VALUE_ID,
MAX_ID
};
struct FXNode* n ;
struct List* l ;
struct Window* xappwin ;
struct Gadget* glist ;
struct Gadget* gad ;
APTR vi ;
struct Screen *ps ;
BOOL winopen ;
struct MsgPort* MyPort ;
struct MsgPort* XAppPort ;
struct MsgPort* replyPort ;
char MyPortName[XAPPNAMELENGTH] ;
APTR xHandle ;
struct TagItem __aligned ti[] = {
{XAPP_Name, (ULONG)"BNK-DEMO"},
{XAPP_PortName, (ULONG)MyPortName},
{XAPP_Type, (ULONG)XAPPTYP_BANKEDITOR},
{TAG_DONE}
};
struct TagItem __aligned th[] = {
{XAPP_Handle, NULL},
{TAG_DONE}
};
struct TagItem __aligned td[] = {
{XAPP_Handle, NULL},
{BANK_MidiBuffer, NULL},
{BANK_MidiLength, 0},
{TAG_DONE}
};
struct TagItem __aligned rd[] = {
{XAPP_Handle, NULL},
{BANK_MidiBuffer, NULL},
{BANK_MidiLength, 0},
{TAG_DONE}
};
struct Partial {
UBYTE pa_Value[58] ;
};
struct Tone {
char to_Name[10] ;
UBYTE to_P12 ;
UBYTE to_P34 ;
UBYTE to_PMute ;
UBYTE to_EnvMode ;
UBYTE to_Partial[4][58] ;
};
struct bnkDemoData {
struct SignalSemaphore *bd_Semaphore ;
WORD bd_UnitNumber ;
WORD bd_ToneNumber ;
WORD bd_ProgramNumber ;
WORD bd_PartNumber ;
WORD bd_PartialNumber ;
WORD bd_ParamNumber ;
struct Tone bd_Tone[64] ;
} bData ;
char partial[58][22] = {
"WG PITCH COARSE ",
"WG PITCH FINE ",
"WG PITCH KEYFOLLOW ",
"WG PITCH BENDER SW ",
"WG WAVEFORM/PCM BANK ",
"WG PCM WAVE ",
"WG PULSE WIDTH ",
"WG PW VELO SENS ",
"P-ENV DEPTH ",
"P-ENV VELO SENS ",
"P-ENV TIME KEYF ",
"P-ENV TIME 1 ",
"P-ENV TIME 2 ",
"P-ENV TIME 3 ",
"P-ENV TIME 4 ",
"P-ENV LEVEL 0 ",
"P-ENV LEVEL 1 ",
"P-ENV LEVEL 2 ",
"P-ENV SUSTAIN LEVEL ",
"END LEVEL ",
"P-LFO RATE ",
"P-LFO DEPTH ",
"P-LFO MOD SENS ",
"TVF CUTOFF FREQ ",
"TVF RESONANCE ",
"TVF KEYFOLLOW ",
"TVF BIAS POINT/DIR ",
"TVF BIAS LEVEL ",
"TVF ENV DEPTH ",
"TVF ENV VELO SENS ",
"TVF ENV DEPTH KEYF ",
"TVF ENV TIME KEYF ",
"TVF ENV TIME 1 ",
"TVF ENV TIME 2 ",
"TVF ENV TIME 3 ",
"TVF ENV TIME 4 ",
"TVF ENV TIME 5 ",
"TVF ENV LEVEL 1 ",
"TVF ENV LEVEL 2 ",
"TVF ENV LEVEL 3 ",
"TVF ENV SUSTAIN LEVEL",
"TVA LEVEL ",
"TVA VELO SENS ",
"TVA BIAS POINT 1 ",
"TVA BIAS LEVEL 1 ",
"TVA BIAS POINT 2 ",
"TVA BIAS LEVEL 2 ",
"TVA ENV TIME KEYF ",
"TVA ENV TIME V_FOLLOW",
"TVA ENV TIME 1 ",
"TVA ENV TIME 2 ",
"TVA ENV TIME 3 ",
"TVA ENV TIME 4 ",
"TVA ENV TIME 5 ",
"TVA ENV LEVEL 1 ",
"TVA ENV LEVEL 2 ",
"TVA ENV LEVEL 3 ",
"TVA ENV SUSTAIN LEVEL"
};
WORD minpartial[58] = {
0, 0, 0, 0, 0, 0, 0, 0, // 8
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 12
0, 0, 0, // 3
0, 0, 0, 0, 0, // 5
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 13
0, 0, 0, 0, 0, 0, // 6
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // 11
};
WORD maxpartial[58] = {
96, 100, 16, 1, 3, 127, 100, 14, // 8
10, 100, 4, 100, 100, 100, 100, 100, 100, 100, 0, 100, // 12
100, 100, 100, // 3
100, 30, 14, 127, 14, // 5
100, 100, 4, 4, 100, 100, 100, 100, 100, 100, 100, 100, 100, // 13
100, 100, 127, 12, 127, 12, // 6
4, 4, 100, 100, 100, 100, 100, 100, 100, 100, 100 // 11
};
static char filename[80] ;
static char fname[80] = "Untitled.bank" ;
static char pname[80] = "Euterpe:Banks/Roland/MT32" ;
static char tonename[11] ;
static UBYTE midibuffer[512] ;
struct SignalSemaphore *MySemaphore ;
struct Gadget* tabgad[MAX_ID] ;
static ULONG winsig, msig, signal ;
BOOL fin ;
#define HIGHPRI 21
struct XAppMsg *xmsg, *replymsg, *emsg ;
extern __stdargs ULONG HookEntry() ;
VOID main(VOID) ;
BOOL InitAll(void) ;
BOOL CloseAll(WORD level) ;
void ProcessEvents(void) ;
BOOL InitWin(void) ;
BOOL CloseWin(WORD level) ;
void ProcessWinEvents(void) ;
VOID StripWindow(struct Window *win) ;
VOID StripIntuiMessages( struct MsgPort *mp, struct Window *win ) ;
VOID StripMessages( struct MsgPort *mp ) ;
void UploadTone(void) ;
void DownLoadTone(void) ;
void LoadTone(void) ;
void SaveTone(void) ;
void SetPart(void) ;
void SetPrg(void) ;
struct FileRequester *InitAslFileReq(struct Screen *s, STRPTR drawer, const char *title) ;
BOOL getfile(struct Screen *s, STRPTR name, STRPTR drawer, STRPTR pat, const char *title, BOOL savemode) ;
void PatchName(void) ;
void GetProgramList(void) ;